<?php

/**
 * 验证器
 */

namespace app\traits\controller;

trait Validate
{

    /**
     * 验证某个字段有值的情况下必须
     * @param  [type] $condition 条件
     * @param  [type] $error     验证规则
     * @return [type]
     */
    public function requireIf($condition, $error)
    {
        if (!$condition) {
            $this->error($error);
        }
        return true;
    }

    /**
     * 获取数据值
     * @access protected
     * @param array $data 数据
     * @param string $key 数据标识 支持二维
     * @return mixed
     */
    protected function getDataValue($data, $key)
    {
        if (is_numeric($key)) {
            $value = $key;
        } elseif (strpos($key, '.')) {
            // 支持二维数组验证
            list($name1, $name2) = explode('.', $key);
            $value = isset($data[$name1][$name2]) ? $data[$name1][$name2] : null;
        } else {
            $value = isset($data[$key]) ? $data[$key] : null;
        }

        return $value;
    }
}
